#pragma once

namespace ExcelLibrary
{
	class CColumn : public IColumn
	{
	public:
		CColumn(Field* pField);
		~CColumn();

		HRESULT STDMETHODCALLTYPE QueryInterface( 
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG STDMETHODCALLTYPE AddRef(void);
        ULONG STDMETHODCALLTYPE Release(void);

		bool Initialize();

		VARTYPE GetType();
		bool IsNull();
		int GetIntValue();
		float GetFloatValue();
		const wchar_t* GetStringValue();
		_variant_t GetVariant();
		
	private:
		DWORD m_dwRefCount;
		Field* m_pField;
		variant_t m_Variant;
	};
}